<template>
  <div>
    <h1>人员列表</h1>
    <h3 style="color:red">Count组件求和为：{{ sum }}</h3>
    <h3 style="color:red">列表中第一个人的名字：{{ FirstName }}</h3>
    <input type="text" placeholder="请输入名字" v-model="name" @keydown.enter="add">
    <button @click="add">添加</button>
    <ul>
      <li v-for="p in personList" :key="p.id">{{ p.name }}</li>
    </ul>
  </div>
</template>

<script>
import {nanoid} from 'nanoid'
import {mapGetters, mapState} from "vuex";

export default {
  name: 'Person',
  data() {
    return {
      name: ''
    }
  },
  computed: {
    //通过辅助函数获取presonAbout中state的数据映射到数组中
    ...mapState('presonAbout', ['personList']),
    ...mapState('countAbout', ['sum']),
    ...mapGetters('presonAbout', ['FirstName']),
  },
  methods: {
    add() {
      const personObj = {id: nanoid(), name: this.name}
      //commit到相关配置里的ADD+PERSON方法中
      this.$store.commit('presonAbout/ADD_PERSON', personObj)
      this.name = ''
    }
  }
}
</script>
